1. Field of the Invention
The present invention relates to radio link control (RLC) data transmission in a UMTS (universal mobile telecommunications system), and more particularly, to a method for moving a receive window in a radio access network.
2. Background of the Related Art
A universal mobile telecommunication system (UMTS) is a third generation mobile communication system that has evolved from a European standard known as Global System for Mobile communications (GSM) that aims to provide an improved mobile communication service based upon a GSM core network and wideband code division multiple access (W-CDMA) wireless connection technology.
In December 1998, the ETSI of Europe, the ARIB/TTC of Japan, the T1 of the United States, and the TTA of Korea formed a Third Generation Partnership Project (3GPP), which is creating the detailed specifications of the UMTS technology.
Within the 3GPP, in order to achieve rapid and efficient technical development of the UMTS, five technical specification groups (TSG) have been created for performing the standardization of the UMTS by considering the independent nature of the network elements and their operations.
Each TSG develops, approves, and manages the standard specification within a related region. Among these groups, the radio access network (RAN) group (TSG-RAN) develops the standards for the functions, requirements, and interface of the UMTS terrestrial radio access network (UTRAN), which is a new radio access network for supporting W-CDMA access technology in the UMTS.
FIG. 1 illustrates a structure of a radio interface protocol between a terminal and the UTRAN according to the 3GPP radio access network standards.
Referring to FIG. 1, a radio interface protocol has horizontal layers comprising a physical layer, a data link layer, and a network layer, and has vertical planes comprising a user plane for transmitting user data and a control plane for transmitting control information.
The user plane is a region that handles traffic information of the user, such as voice and Internet protocol (IP) packets, while the control plane is a region that handles control information for an interface of a network, maintenance and management of a call, and the like.
The protocol layers in FIG. 1 can be divided into a first layer (L1), a second layer (L2), and a third layer (L3) based on the three lower layers of an open system interconnection (OSI) standard model. Each layer will be described in more detail as follows.
The first layer (L1), namely, the physical layer, provides an information transfer service to an upper layer by using various radio transmission techniques. The physical layer is connected to an upper layer called a medium access control (MAC) layer, via a transport channel. The MAC layer and the physical layer send and receive data with one another via the transport channel.
The second layer (L2) includes a MAC layer, a radio link control (RLC) layer, a broadcast/multicast control (BMC) layer, and a packet data convergence protocol (PDCP) layer.
The MAC layer provides an allocation service of the MAC parameters for allocation and re-allocation of radio resources. The MAC layer is connected to an upper layer called the radio link control (RLC) layer, via a logical channel.
Various logical channels are provided according to the kind of transmitted information. In general, when information of the control plane is transmitted, a control channel is used. When information of the user plane is transmitted, a traffic channel is used.
The RLC layer supports reliable data transmissions, and performs a segmentation and concatenation function on a plurality of RLC service data units (RLC SDUs) delivered from an upper layer. When the RLC layer receives the RLC SDUs from the upper layer, the RLC layer adjusts the size of each RLC SDU in an appropriate manner upon considering processing capacity, and then creates certain data units with header information added thereto. The created data units are called protocol data units (PDUs), which are then transferred to the MAC layer via a logical channel. The RLC layer includes a RLC buffer for storing the RLC SDUs and/or the RLC PDUs.
The PDCP (Packet Data Convergence Protocol) layer, as a higher layer of the RLC layer, allows the data transmitted through a network protocol (such as an IPv4 or IPv6) to be effectively transmitted on a radio interface with a relatively small bandwidth. To achieve this, the PDCP layer performs the function of reducing unnecessary control information used for a wired network, and this type of function is called, header compression.
A BMC (broadcast multicast control) layer transmits cell broadcast messages (hereinafter abbreviated as ‘CB message’) transferred from a core network to terminals through a radio interface. For this, the BMC layer performs the functions of storing, scheduling, and transmitting the CB messages.
There is a radio resource control (RRC) layer at a lowermost portion of the L3 layer. The RRC layer is defined only in the control plane, and handles the controlling of logical channels, transport channels, and physical channels with respect to setting, resetting, and releasing of radio bearers. The radio bearer service refers to a service that the second layer (L2) provides for data transmission between the terminal and the UTRAN, and in general, setting the radio bearer refers to defining the protocol layers and the channel characteristics of the channels required for providing a specific service, as well as respectively setting substantial parameters and operation methods.
For reference, the PDCP and BMC layers exist in the user plane only, while the MAC and RLC layers can exist in the user plane or the control plane according to the upper layer connected thereto. Namely, when the RLC layer provides services to the RRC layer, the MAC and RLC layers exist in the control plane. Otherwise, they exist in the user plane.
Moreover, the other the second layers (excluding the MAC layer) have a plurality of entities to guarantee the QoS (quality of service) that is appropriate for each radio bearer (RB). Namely, a multitude of entities can exist in one layer, and each entity provides a separate service.
The RLC layer will be explained in more detail as follows. A basic function of the RLC layer is to guarantee the QoS of each RB and their corresponding data transmissions. As the RB service is a service that the second layer of the radio protocol provides to higher layers, the entire second layer affects the QoS, and in particular, the RLC layer has significant influence to the QoS.
The RLC provides an independent RLC entity for each RB in order to guarantee the particular QoS of the RB, and provides three RLC modes, namely, a transparent mode (TM), an unacknowledged mode (UM), and an acknowledged mode (AM) to support various types of QoS. As the three RLC modes (TM, UM, AM) respectively support different QoS requirements, there are differences in operation and in specific functions. Accordingly, each operational mode of the RLC must be considered in more detail. The particular RLC for each mode will be referred to as TM RLC, UM RLC, and AM RLC.
In TM, employing a TM RLC, no protocol overhead is added to the RLC SDU that is transferred from higher layer. As the RLC lets the SDU pass “transparently,” this mode is called transparent mode (TM). Accordingly, the user plane and the control plane perform the following functions. In the user plane, because a data processing time at the RLC is short, real-time circuit data transmissions (such as voice and streaming in the circuit service domain (CS domain)) are handled. In the control plane, because there is no protocol overhead within the RLC, uplink transmission of RRC messages from an unspecified terminal (UE), and downlink transmission of RRC messages that are broadcast to all terminals (UE) within a cell are handled.
Meanwhile, unlike the transparent mode, a mode in which protocol overhead is added at the RLC is called non-transparent mode. Non-transparent mode is divided into unacknowledged mode (UM) that has no reception acknowledgement for the transferred data, and acknowledged mode (AM) that has acknowledgement. In UM, employing a UM RLC, a PDU header including a sequence number (SN) is added to each PDU and then transferred, in order to allow the receiving side to identify which PDUs were lost during transmission. As such, in UM (employing a UM RLC), the user plane handles broadcast/multicast data transmissions or real-time packet data transmissions, such as voice (e.g., VoIP) and streaming in the packet service domain (PS domain). In the control plane, transmission of those RRC messages that need no acknowledgement response, among all RRC messages delivered to a specific terminal or terminal group within a cell region, is handled.
As in UM, in AM (employing an AM RLC) a PDU header including SN is added to construct a PDU. However, unlike the UM, in AM, a receiving side provides reception acknowledgement of the PDU sent from a transmitting side. In AM, the receiving side provides acknowledgement in order to request re-transmission of any PDUs that have not been properly received. This function of re-transmission is the most distinguishing characteristic in AM RLC. Thus, the object of AM RLC is to guarantee error-free data transfers through re-transmissions. To achieve this object in AM (employing an AM RLC), transmission of non-real-time packet data such as TCP/IP in the PS domain is handled by the user plane, and transmission of RRC messages that absolutely need acknowledgement, among all the RRC messages transmitted to a specific terminal, is handled by the control plane.
Considering the direction of data communication, TM RLC and UM RLC are used in uni-directional communication, while AM RLC is used in bi-directional communication because of the necessary feedback (acknowledgement) from a receiving side. Bi-directional communication is mainly used in point-to-point communication, whereby AM RLC uses dedicated logical channels only. Regarding the structural differences, in AM RLC, a single RLC entity performs both transmission and reception, whereas in TM RLC and UM RLC, a PLC entity exists at the transmission side and a RLC entity exists at the reception side.
The AM RLC requires a more complicated structure and data-processing techniques due to the re-transmission function. In AM RLC, a re-transmission buffer is required in addition to a transmission buffer to manage re-transmission. The AM RLC performs various functions, such as using a “transmitting/receiving window” for flow control, performing “Polling” in which the transmitting side requests status information from a peer RLC entity at the receiving side, providing a “status report” in which the receiving side reports its buffer status to a peer RLC entity at the transmitting side, creating a “status PDU” for carrying status information, performing “Piggyback” in which a status PDU is inserted into a data PDU to increase data transmission efficiency, and the like. Moreover, the AM RLC needs various protocol parameters, state variables, and a timer to support its various functions.
One of the main functions of a RLC is the SDU discard function, whereby certain RLC SDUs (such as “old” SDUs), among the SDUs stored at the transmitting side RLC entity, are discarded to prevent overloading of the RLC buffer. The SDU discard function plays a significant role in guaranteeing the QoS of a RB service provided by the RLC. Typically, the transmitting side discards certain SDUs by using scheme employing a timer or a scheme employing a limited number of re-transmissions.
The timer scheme is used in all three kinds of RLC modes (TM, UM, and AM). A transmitting side RLC entity operates a timer (e.g., a discard time) for measuring the time (duration) that each RLC SDU remains at the RLC layer, each RLC SDU being received from an upper layer. If a particular SDU fails to be properly transmitted upon expiration of time period set by the timer, that SDU is discarded and all SDUs between the beginning of a transmitting window and the corresponding SDU are discarded as well.
The limited number of re-transmissions scheme is used in AM RLC only. If the transmission and re-transmission of a particular RLC PDU continue to be unsuccessful and the maximum (limit) number of re-transmissions is reached, a transmitting side RLC entity discards any SDU that includes at least a portion of the corresponding RLC PDU. This operation is described in more detail below.
The RLC SDU transferred down to the AM RLC layer at the transmitting side is converted into a RLC PDU to be stored in a buffer. At this time, a counter (e.g., VT (DAT)) for counting the number of transmissions for each RLC PDUs begins its count operation. The VT (DAT) is incremented by ‘1’ each time the RLC PDU (that the VT (DAT) is responsible for) is transmitted. If the transmission of a particular RLC PDU continues to be unsuccessful, and the VT (DAT) reaches the maximum (limit) number of retransmissions (MaxDAT), the AM RLC discards all SDUs included in at least a portion of the corresponding PDU, as well as all SDUs between a beginning of a transmitting window and the corresponding SDU.
In case the transmitting side AM RLC discards at least one RLC SDU, such a discard is notified to the receiving side AM RLC so that the receiving window of the receiving side is moved. The receiving window can be moved because the receiving side no longer needs to stand by and wait for the SDU that has now been discarded and thus would not be transmitted. Here, this type of operation can be referred to as a ‘Move Receiving Window (MRW)’ function.
The transmitting side sends an MRW message to the receiving side for moving the receiving window. Here, the MRW command does not specify the location to which the receiving window should actually move to, but only provides information that a particular SDU has been discarded at the transmitting side. Upon receiving the MRW message, the receiving side appropriately moves the receiving window based on the information of the discarded SDU.
A procedure of moving a receiving window is called a MRW procedure. The MRW procedure includes the steps of transmitting a MRW command from the transmitting side, moving the receiving window by the receiving side and transmitting receiving window move information to the transmitting side, and moving the transmitting window at the transmitting side. The operation of each of these steps is explained in detail as follows. For better understanding, the explanation begins with the step performed by the transmitting side of receiving an SDU from a higher layer.
Construction of PDU from SDU
Once the SDUs are delivered from a higher layer, the transmitting side AM RLC performs segmentation and concatenation on the SDUs (which may be of different sizes) to construct an AM data (AMD) PDU having a predetermined size. The AMD PDU includes a header added to a payload. The payload consists of a portion of an SDU or at least one or more SDUs. The header consists of a sequence number (SN) of the PDU and a length indicator (LI) indicating the location of a boundary of the SDU if such boundary exists.
FIG. 2 shows an example of how PDUs are constructed from SDUs.
Referring to FIG. 2, it is assumed that the 1st to 32nd SDUs carried on the 1st to 20th PDUs have already been successfully transmitted. When subsequent SDUs are delivered down to the AM RLC, the AM RLC performs segmentation or concatenation on the SDUs (that may be of different sizes) to construct AMD PDUs of a predetermined size. In FIG. 2 only the 33rd to 39th SDUs are shown. However, it can be understood that additional SDUs may continue to be delivered and that the AM RLC continues to construct additional PDUs for the descending SDUs. Furthermore, the AM RLC attaches the SN of the PDU to the AMD PDU header. If a boundary of the SDU exists within a constructed PDU, an indicator LI indicating the location of the boundary is also added to the AMD PDU header.
FIG. 3 is an exemplary diagram of showing the processing of the 21st to 23rd AMD PDUs among the constructed AMD PDUs in FIG. 2.
Referring to FIGS. 2 and 3, it can be understood that the 21st PDU consists of a portion of the 33rd SDU (SDU 33), whereby no boundary of the 33rd SDU (SDU 33) exists within the 21st PDU. Hence, the 21st PDU simply consists of an SN (in the header) and a portion of SDU 33. Next, the 22nd PDU consists of an end portion of SDU 33, the entirety of SDU 34, and a beginning portion of SDU 35, whereby two SDU boundaries exist within the 22nd PDU. Thus, two LI fields (LI 33 and LI 34) indicating the respective SDU boundaries are added to the header. For the 23rd PDU, since one boundary between SDU 35 and SDU 36 exists within the 23rd PDU, a corresponding LI field is added to the header.
PDU Storage
Each constructed AMD PDU is stored in a transmission buffer of the AM RLC, and simultaneously stored in a re-transmission buffer for possible re-transmission that may take place at a later time. The difference between the transmission and re-transmission buffers lies in that the PDU having been transmitted once is removed from the transmission buffer, but is stored in the re-transmission buffer until that PDU is successfully transmitted. FIG. 4 shows an example of how the AM RLC constructs and stores the AMD PDU in the transmission and re-transmission buffers.
PDU Transmission
The transmitting side AM RLC transmits the constructed PDUs to the receiving side AM RLC of the peer AM RLC entity. When the transmitting side AM RLC transmits AMD PDUs, all PDUs are not transmitted at once, as only those PDUs within a transmitting window can be transmitted. The reason that the AM RLC employs a transmitting window and a receiving window to transmit and receive PDUs is to manage those PDUs that need to be re-transmitted. For this, the transmitting side only transmits those PDUs in the transmitting window, and the receiving side only receives those PDUs in the receiving window. Here, a “window” represents a range of PDU SN values, whereby the PDUs in the receiving window refer to those PDUs having SN values within the range of PDU SN values corresponding to the receiving window.
The size of the transmitting/receiving window is set when the RLC entity is created, and its range (SN value range) varies while PDUs are transmitted and received. The start point and end point (i.e., boundaries) of the transmitting window and receiving window are defined as follows:
Transmitting Window                Start point: the SN of the first PDU of which an ACK should be received next in-sequence from the receiving side.        End point: the SN of the first PDU among the PDUs that cannot be transmitted.        
Receiving Window                Start point: the SN of the first PDU that must be received next in-sequence.        End point: the SN of first PDU among the PDUs that cannot be received.        
As can be seen from the above definitions, the transmitting side enables the transmission of only those PDUs having SNs within a range from the start point to the next-to-last end point (“endpoint-1”). The PDUs having SNs at and after the end point can be transmitted only after the transmitting window is updated. Updating of the transmitting window takes place when the ACK for the first in-sequence PDU is received from the receiving side.
In a similar manner, the receiving side enables the reception of only those PDUs having SNs within a range from the start point to the next-to-last end point (“endpoint-1”). If a PDU having an SN that is outside of such a range is received, the receiving side immediately discards such PDU. Updating of the receiving window takes place when the first in-sequence PDU is successfully received.
It should be noted that the size of the transmitting window and the receiving window is defined as the interval (size) between the start point and the end point. For example, assuming that the size of the transmitting/receiving window is 10 and the 1st to 20th PDUs have been successfully transmitted, the range of the transmitting window is 21˜31, and also, the range of the receiving window is 21˜31.
At the transmitting side, because the 21st PDU is the first PDU of which an ACK should be received in-sequence, the transmitting window can be updated only if the successful transmission of the 21st PDU is confirmed. Likewise, at the receiving side, because the 21st PDU is the first PDU to be received in-sequence, the receiving window can be updated only if the successfully receiving of the 21st PDU is confirmed.
If an endpoint of the transmitting/receiving window is 31, the transmitting side can only transmit the 21st to 30th PDUs. Accordingly, the receiving side can only receive the 21st to 30th PDUs as well. The receiving side immediately discards any PDU having an SN that is out of range, as soon as such PDU is received. Updating of the transmitting window and the receiving window is continuously performed while the AMD PDUs are transmitted/received, as is shown in FIG. 5.
FIG. 5 shows an example for transmitting/receiving AMD PDUs and updating the transmitting window and the receiving window, in which all PDUs, up to the 20th PDU, are assumed to be successfully transmitted and both the transmitting window and the receiving window having a range of 21˜31.
Referring to FIG. 5, a transmitting side constructs PDUs using the SDUs delivered from a higher layer and transmits the constructed PDUs to the receiving side. Here, the range of a transmitting window is 21˜31, whereby only those PDUs within such a range are transmitted. The constructed PDUs are sequentially transmitted according to their SNs, and one or more PDUs can be transmitted within one transmission time interval (TTI). Although only the 21st to 28th PDUs are shown in FIG. 5, PDU transmission continues to take place, whereby additional PDUs can be further transmitted if they have SNs that fall within the range.
The receiving side waits for PDU reception with a receiving window having a range between 21˜31. For those PDUs within the range, proper reception is possible. However, if a PDU that is outside the range is received, the receiving side regards such PDU as erroneous and thus immediately discards such PDU. Since the transmitting side sequentially transmits PDUs, the receiving side sequentially receives these PDUs as well. The receiving side updates the receiving window to a range of 22˜32 once the 21st PDU is properly received. Thereafter, upon properly receiving the 22nd PDU, the receiving side updates the receiving window to 23˜33. Namely, updating of the receiving window takes place only if a PDU that is supposed to be received in-sequence is properly received.
However, if the 24th PDU is received when the receiving window has been updated to 23˜33, the receiving window will not be updated any further. Hence, the receiving side receives subsequent PDUs while the receiving window is fixed at a range of 23˜33. FIG. 5 shows an example where the 23rd, 26th, and 27th PDUs are lost during transmission. The receiving side sends a status report regarding the received PDUs to the transmitting side. Here, it is assumed that the status report is sent at the time when the 28th PDU is received. The reported status information provides that among the 21st to 28th PDUs, the 23rd, 26th, and 27th PDUs have not been properly received, and other PDUs have been properly received.
Upon receiving the status report from the receiving side, the transmitting side deletes the successfully transmitted PDUs from the re-transmission buffer, then updates the transmitting window, and prepares re-transmission of the transmission-failed PDUs. Namely, after deleting the 21st, 22nd, 24th, 25th, and 28th PDUs (i.e., the properly transmitted PDUs) from the re-transmission buffer, the transmitting side maintains the 23rd, 26th, and 27th PDUs in the re-transmission buffer and prepares for re-transmission. In FIG. 5, it is assumed that PDUs are additionally constructed (up to the 34th PDU) after the PDUs (up to the 28th PDU) have been properly transmitted. As PDU transmission occurs sequentially, the 23rd, 26th, and 27th PDUs are re-transmitted and then the 29th to 32nd PDUs are transmitted for the first time. Here, because the 33rd and 34th PDUs are outside the range of the transmitting window, they are stored in the transmission buffer and await subsequent transmission.
Following the above-explained procedure, the receiving side sequentially receives PDUs. If the 23rd PDU is received (as a result of re-transmission from the transmitting side), the start point of the receiving window is moved to the SN (i.e., SN=26) of the PDU to be received first in-sequence, because the 24th and 25th PDUs were already properly received Namely, at the time of receiving 23rd PDU, the receiving window is updated to 26˜36. Once 26th PDU is received, the receiving window is again updated to 27˜37.
However, if the 27th PDU is not received thereafter, but the 29th PDU is received instead, the receiving window maintains its range as 27˜37 and is not updated. FIG. 5 shows that the 27th, 30th, and 31st PDUs are not received among the PDUs up to the 32nd PDU. Specifically, the 27th PDU failed to be transmitted twice (that is, one re-transmission failed). When receiving the 32nd PDU, assuming that the receiving side sends a status report, the receiving side having received the PDUs up to the 32nd PDU will send a status report indicating the failure to receive the 27th, 30th, and 31st PDUs.
Discard of SDU
Assuming that transmission of the 23rd PDU continues to fail, if the PDUs as shown in FIG. 5 are constructed with the SDUs in FIG. 2, the transmission failure of the 23rd PDU means that the 35th and 36th SDUs will also have transmission failures. The discarding of SDUs differs for the timer scheme and for the limited number of re-transmissions scheme, thus these will be explained in more detail as follows.
Upon receiving an SDU from a higher layer, the AM RLC immediately operates a discard timer for the SDU. Here, the discard timer operates for each SDU. The discard timer stops operating the moment the SDU is successfully transmitted and the discard timer assigned to that SDU is removed (expires). Here, ‘successfully transmitted’ means that an ACK signal (informing that all PDUs having at least a portion of an SDU have been successfully received) is received from the receiving side. As the SDUs are sequentially delivered to the RLC, the discard timer sequentially expires as well. In FIG. 2, if the 23rd PDU is not successfully transmitted by the time the discard timer of the 35th SDU expires, the 35th SDU is discarded at the moment when the discard timer expires.
Here, it is important to note that the SDU is discarded, and not the PDU. Since a PDU is constructed with segmented and/or concatenated SDUs, one SDU may be entirely within one PDU or one SDU may span across several PDUs. In any case, the discard of the SDU means that all corresponding portions of the SDU are discarded from all PDUs that contain any portion of that SDU.
For example, referring back to FIG. 2, even if the 22nd PDU succeeds in transmission, a transmission failure of the 23rd PDU results in the discarding of the 35th SDU. Hence, a portion of the 35th SDU in the 22nd PDU is discarded as well. Moreover, it is also important to note that the 23rd PDU is not discarded even if the 35th SDU is discarded. Having a portion of the 36th SDU as well as a portion of the 35th SDU, the 23rd PDU continues to be re-transmitted until the discard timer of the 36th SDU expires. Even if the 23rd PDU is re-transmitted while the 35th SDU has been discarded, the re-transmission does not exclude the portion of the 35th SDU. The construction of the re-transmitted PDU should be equal to that of the originally transmitted PDU.
When SDUs are delivered down from a higher layer, they may descend simultaneously despite sequential delivery. If the 35th and 36th SDUs are delivered almost simultaneously, the discard timers of the 35th and 36th SDUs may expire almost at the same time. In such a case, the 35th and 36th SDUs are discarded almost at the same time, and re-transmission of the 23rd PDU is interrupted as well as that of the 24th PDU that includes the 36th SDU. As the 25th PDU includes a portion of the 37th SDU of which the discard timer has yet to expire, the 25th PDU continues to be re-transmitted until the discard timer of the 37th SDU expires. As mentioned in the foregoing explanation, a construction of the re-transmitted 25th PDU is the same as that of the originally transmitted PDU.
The discard method using the timer scheme performs the discard of SDUs using the expiration of the discard timer, by which the discard of SDUs occur sequentially. However, in the limited number of re-transmissions scheme, an SDU is discarded if the PDU that has been re-transmitted (as many times as the maximum (limit) number of re-transmission scheme allows) is not successfully transmitted. Hence, unlike in the timer scheme, all SDUs including at least a portion of the corresponding PDU are simultaneously discarded according to the limited number of re-transmissions scheme.
For example, as shown in FIG. 2, if the 23rd PDU fails to be properly transmitted even when the maximum (limit) number of re-transmissions is reached, the 35th and 36th SDUs are simultaneously discarded. However, because this scheme is also for discarding SDUs, the procedures thereafter are the same of those of the timer scheme in that two SDUs are discarded at almost the same time. Namely, a corresponding portion of the 22nd PDU is discarded due to the discarding of the 36th SDU, while the 24th PDU is discarded due to the discarding of the 36th SDU, despite the fact that the re-transmissions of the 24th PDU has yet to be completed because the maximum (limit) number of re-transmissions has not yet been reached. However, the 25th PDU including the 37th SDU therein continues to be re-transmitted until the maximum (limit) number of re-transmissions is reached.
Transmission of SDU Discard Information
A MRW procedure that is directly related to the present invention is explained as follows. After discarding an SDU, the transmitting side AM RLC informs the receiving side of the discarded SDU through a MRW command for moving the receiving window. In this case, the MRW command does not directly indicate the position to which the receiving window should move, but only informs the SDU discard information, whereby the receiving side moves the receiving window to an appropriate position based on the discard information.
Information that indicates an end portion of the SDU discarded by the transmitting side is included in the MRW command that is transmitted by the transmitting side. In order to indicate the end portion of the SDU, the MRW command should include information related ‘to which PDU the end portion of the SDU belongs’ and ‘to which portion in the PDU the end portion of the SDU belongs’. Hence, the MRW command consists of a SN of PDU to which the end portion of the discarded SDU belongs, and an indicator indicating an end of the discarded SDU in the PDU.
When at least two SDUs are discarded, the MRW command carries information about the last discarded SDU. This is because the position to which the receiving window has to move is located after the end of the last discarded SDU. Moreover, as explained in the foregoing description, when a certain SDU is discarded, all SDUs between the start point of the transmitting window and the corresponding SDU are discarded as well. Hence, the receiving side only receives the information of the last discarded SDU so as to know what SDUs have been discarded at the transmitting side.
When a higher layer requests information about other discarded SDUs, as well as the information of the last discarded SDU, the MRW command can optionally inform such information. However, for the other SDUs, instead of the last SDU, the SN of the PDU (where the end portion of the discarded SDU exists) is informed, but an indicator indicating an end of the corresponding SDU in the PDU is not informed. This is because the information about the other discarded SDUs does not affect the receiving window movement, and because these other SDUs are consecutively discarded.
FIG. 6 is a conceptual diagram of the structure of a MRW command, in which ‘N’ is the number of discarded SDU information that is carried by MRW command, and the current UMTS standard set this number to be a maximum of 15.
Referring to FIG. 6, a basic MRW command contains information about an end portion of the Nth discarded SDU. Additionally, another discard information about the SDUs between 1 to N−1 (i.e., SDU 1 to SDU (N−1)) can be optionally added.
In FIG. 6, the uppermost field is the number of the PDU SNs included in the MRW command and is equal to ‘N’. It is important to note that N is not the number of SDUs substantially discarded in the transmitting side, but the number of SDU discard information carried in the corresponding MRW command.
Namely, if the MRW command includes the SN of PDU where an end portion of the Nth SDU exists, the MRW command includes one SDU discard information, such that the count is 1. When including all discard information of 1st to Nth SDUs, the MRW command includes N SDU discard information so that the number is N. The reason why a value of N is notified is that the receiving side is informed whether optional SDU discard information of 1˜(N−1) exists or not when receiving the MRW command. Also, indicator information that indicates where the end portion of the Nth SDU is located within the PDU, is always included at the end of the MRW command.
Referring to FIGS. 2 and 5, an example of how a MRW command may be actually structured is explained as follows. First, it is assumed that the 23rd PDU is not successfully transmitted continuously or for an extended period of time, such that the 35th and 36th SDUs are simultaneously discarded. In this case, a start point of the transmitting window is at the 23rd PDU as explained in the foregoing description. In such a case, the MRW command is configured as shown in FIG. 7.
Namely, if the 35th and 36th SDUs are discarded due to the transmission failure of the 23rd PDU, the MRW command for this situation consists of PDU SN=23 of discard information of the 35th SDU, PDU SN=25 of discard information of the 36th SDU, and an indicator indicating an end of the 36th SDU. Here, as explained in the foregoing description, the discard information of the 35th SDU can be optionally inserted by a request of the higher layer and a count (number) field value of the uppermost PDU SN is correspondingly adjusted.
Moving the Receiving Window and Transmitting Move Information
Upon receiving a MRW command, the receiving side discards all SDUs from an SDU existing at a start point of a receiving window to a last SDU informed by the MRW command, and correspondingly moves the receiving window. The moved position of the receiving window varies according to whether the PDUs (that include the SDUs after the discarded SDU) are received or not.
In any case, the basic principle is that the start point of the receiving window is moved to the SN of the PDU that is first received in-sequence after excluding the discarded SDUs. Hence, the moved position of the receiving window may be the PDU that includes an end portion of the last discarded SDU informed by the MRW command or the PDU that follows after subsequent PDUs have been successfully received. The receiving side consecutively discards the SDUs from the start point of the receiving window to correspond to the MRW command, moves the receiving window, and then informs the transmitting side of the moved position of the receiving window. In this case, the start point of the receiving window is the SN of the PDU to be first received in-sequence.
The moved position of the receiving window is explained by reference to the MRW command in FIG. 7 as an example. Referring back to FIG. 5, the receiving side successfully receives all PDUs up to the 22nd PDU, but fails to receive the 23rd PDU, whereby the start point of the receiving window is the 23rd PDU. Assuming that the 24th to 28th PDUs are successfully received, if the MRW command shown in FIG. 7 is received, the receiving side discards all the SDUs from the start point of the receiving window up to the last discarded SDU. Namely, all SDUs from the 35th SDU corresponding to the start point of the receiving window up to the 36th SDU (which is the last PDU informed by the MRW command) are discarded. Specifically, in FIG. 2, an end portion of the 22nd PDU (that includes the 35th SDU) is discarded, the 23rd PDU fails to be received, the 24th PDU is entirely discarded, and a beginning portion of the 25th PDU (that includes 36th SDU) is discarded.
Thereafter, the PDUs up to the 28th are successfully received, whereby the start point of the receiving window moves to the 29th PDU to be first received in-sequence. The receiving side then notifies the transmitting side that the receiving window has moved to the 29th PDU.
In particular situations, the position of the receiving window may already proceed further than the PDU specified by the MRW command. Such a situation occurs when the ACK information is lost during transmission, even if the receiving side having properly received the PDU sends the ACK information to the transmitting side. In this case, the receiving side successfully received the PDU and correspondingly updated the receiving window. Yet, the transmitting side fails to receive ACK information for the transmitted PDU, thereby failing to update its receiving window. Hence, the start point of the receiving window is behind the start point of the transmitting window.
For example, referring to FIG. 7, the receiving side successfully received all the PDUs up to the 28th PDU and updated the start point of the receiving window to the 29th PDU. However, the ACK information for the 23rd PDU is consecutively lost during transmission, whereby the start point of the transmitting window may be held at the 23rd PDU. In this case, if the transmitting side discards the 35th and 36th SDUs, and transmits the SDU discard information to the receiving side, the SDU discard information is of no use, because the receiving window of the receiving side has already been moved to the 29th PDU.
Hence, when the receiving window has already moved, i.e., when the discard information of the corresponding SDU is received after the successfully received SDU is delivered to the higher layer, the receiving side ignores this information and informs the transmitting side of a current position of the receiving window. Yet, the receiving side may not discard the SDU that was discarded by the transmitting side. Namely, if the discard information for the SDU that was successfully received and delivered to the higher layer is received, the corresponding SDU cannot be discarded because the corresponding SDU was already delivered to the higher layer. The receiving side may only inform the higher layer of the information that the corresponding SDU was discarded in the transmitting side.
Transmitting Window Move
Upon receiving the window move information from the receiving side, the transmitting side moves the start point of the transmitting window to the same position as the start point of the receiving window. The PDU corresponding to the start point of the transmitting window may be already transmitted before the receiving window move information. In such case, the transmitting side does not transmit the corresponding PDU and awaits the ACK/NACK status report from the receiving side. If the PDU corresponding to the start point of the transmitting window is not transmitted beforehand, the transmitting side starts to transmit from the corresponding PDU.
In the related art method, after receiving the MRW command, the receiving side discards all SDUs from the start point of the receiving window up to the last discarded SDU informed by the MRW command, whereby various problems are created if the SDUs are discontinuously discarded in the transmitting side.
FIG. 8A is a diagram of explaining how a discontinuous SDU discard takes place in normal data transmitting and receiving.
First, assuming that the PDUs up to the 20th PDU are successfully transmitted, the start points of transmitting and receiving windows may be located at the 21st PDU. If the SDUs are delivered to the transmitting side RLC while such a status is maintained, the RLC segments and/or concatenates the SDUs to construct PDUs and then transmits the constructed PDUs to the receiving side.
FIG. 8A is a diagram of transmitting the 21st to 28th PDUs from the transmitting side. In this case, the PDUs up to the 30th PDU can be substantially transmitted. Yet, the SDUs are sequentially delivered down to RLC. Hence, it is assumed that the PDUs from the 29th PDU are not constructed yet at the moment of transmission from the transmitting side.
In FIG. 8A, the receiving side fails to receive the 23rd, 26th, and 27th PDUs among the 21st to 28th PDUs transmitted through the above-described process, because of losses during transmission and succeeds in receiving the rest of the PDUs. After successfully receiving the 21st and 22nd PDUs, the receiving side updates the start point of the receiving window to the 23rd PDU. Yet, no additional receiving window updating takes place since the 23rd PDU has not been received. Once the receiving side transmits status information for the 21st to 28th PDUs to the transmitting side, the transmitting side deletes the 21st, 22nd, 24th, 25th, and 28th PDUs from a buffer, updates the start point of the transmitting window to the 23rd PDU, and then awaits subsequent transmission.
FIG. 8B is a diagram explaining a procedure of the transmitting side for updating the transmitting window to 23˜33, and then performs subsequent transmission. Here, the PDUs are transmitted in order of the 23rd, 26th, 27th, 29th, 30th, 31st, and 32nd PDUs, wherein the 23rd, 26th, and 27th PDUs require re-transmission. It should be noted that even though the PDUs from the 33rd PDU are constructed, they cannot be transmitted due to the size limitation of the transmitting window.
Assuming that the receiving side still fails to receive the 23rd and 27th PDUs among the transmitted 23rd to 32nd PDUs, and further fails to receive the 30th and 31st PDUs. Since the 23rd PDU is not received, the receiving window, a shown in FIG. 8B, maintains its current range of 23˜33.
Once the status information of the 23rd to 32nd PDUs is transmitted to the transmitting side, the transmitting side deletes the PDUs succeeding in transmission from the buffer. Yet, since the ACK for the 23rd PDU is not received, updating of the transmitting window fails to take place like in the receiving side. Hence, the transmitting side, as shown in FIG. 8C, re-transmits the 23rd, 27th, 30th, and 31st PDUs while maintaining the transmitting window at a range of 23˜33.
If the receiving side keeps failing to receive the 23rd and 27th PDUs, since the 23rd and 27th PDUs remain within the range of the transmitting window, the transmitting side fails to transmit additional PDUs, and only re-transmits the 23rd and 27th PDUs. Thereafter, assuming that 23rd and 27th PDUs continue to be re-transmitted, but ultimately fail to be properly transmitted, the transmitting side then discards the corresponding SDUs due to the discard timer expiration for SDU or the maximum (limit) number of re-transmissions has been reached.
FIG. 9 is a diagram of discontinuously discarding 35th, 36th, 38th, and 39th SDUs due to transmission failure of 23rd and 27th PDUs. Referring to FIG. 9, in case of discontinuously discarding SDUs, in order to move a receiving window using the MRW procedure, one of the following two methods is used.
A. Method of Sequentially Executing MRW Procedures as Many Times as the Number of Sets of Continuously Discarded SDUs
When SDUs are discontinuously discarded, this method regards the continuously discarded SDUs as one set, and executes one MRW procedure for each continuously discarded SDUs set to move a receiving window sequentially. Namely, referring to FIG. 9, the transmitting side regards the 35th and 36th SDUs as one set, and the 38th and 39th SDUs as another set, and then performs the MRW procedure on each of the two sets. Since the MRW procedures are performed one-by-one at any one moment, they cannot be simultaneously executed but is sequentially executed one after the other. Such a procedure is explained in more detail by referring to FIG. 10.
First, the transmitting side executes a first MRW procedure while the transmitting window is between 23˜33. The transmitting side discards all SDUs from the start point of the transmitting window to the 36th SDU, and transmits such information to the receiving side using a MRW command (S1, S2). The receiving side discards all SDUs from the start point of the receiving window to the last discarded SDU informed by the received MRW command, i.e., the 36th SDU, and then moves the receiving window to 27˜37 (S3).
Thereafter, the receiving side informs the transmitting side of a moved position of the receiving window (S4). The transmitting side then terminates the first MRW procedure and moves the transmitting window to 27˜37 in order to correspond with the moved position of the receiving window. The transmitting side then executes a second MRW procedure to move the receiving window after the 39th SDU (S5).
Another MRW command transmitted in the second MRW procedure includes the discard information of the 39th SDU that is the last discarded SDU of a second discontinuous discarded SDU set. It should be noted that, since the transmitting window is moved to 27˜37 while the second MRW procedure is in progress, the 33rd to 36th PDUs can be transmitted (S6). After discarding all the SDUs from the start point of the receiving window to the last discarded SDU informed by the received MRW command, i.e., the 39th SDU, the receiving side moves the start point of the receiving window to an “appropriate” position between 33˜37 (S7). In this case, the 33rd to 36th PDUs can be transmitted while the second MRW procedure is performed, whereby the position of the receiving window is referred to as being “appropriate” because such position varies depending upon whether these PDU are received.
For instance, if there is no additional PDU reception while the second MRW procedure is in progress, the receiving window is updated to 33˜43. If all of the 33rd to 36th PDUs are received, the receiving window is updated to 37˜47. Namely, the transmittable PDUs can be transmitted during the MRW procedure, whereby the reception of such PDUs changes (updates) the position of the receiving window. This is the same as in the first MRW procedure. Yet, since there are no transmittable PDUs except the 23rd and 27th PDUs between the range of 23˜33 of the receiving window in the example of FIG. 8, the start point of the receiving window was defined as 27.
After moving the start point of the receiving window to the appropriate position, the receiving side transmits transmitting window move information to the transmitting side (S8). The transmitting side having received the transmitting window move information terminates the second MRW procedure and moves the start point of the transmitting window to correspond with that of the receiving window (S9). The transmitting window is then used to continue transmission from the PDU at the start point of the transmitting window (S10).
B. Method of Discarding all PDUs Between Discontinuously Discarded SDUs
FIG. 11 is a flowchart of moving a receiving window using this method (method B) when the discontinuous SDU discard as shown in FIG. 9 takes place.
In method B, when SDUs are discontinuously discarded, the transmitting side discards all SDUs from one SDU corresponding to the start point of the transmitting window up to the last one of the discarded SDUs, regardless of transmission success or failure such that the SDUs from the start point of the transmitting window up to last SDU are continuously discarded. Namely, if the SDUs are discontinuously discarded as shown in FIG. 9, the transmitting side discards all SDUs from the 35th SDU of the start point of the transmitting window up to the 39th SDU of the last discarded SDU, and sends such information to the receiving side (S11, S12). In this case, the 37th SDU is discarded despite succeeding in transmission. The receiving side having received an MRW command regards all SDUs from the start point of the receiving window up to the 39th SDU as discarded, so as to discard the corresponding SDUs, and then moves the receiving window beyond the 39th SDU (S13). In this case, the 37th SDU is discarded despite the transmission success at the transmitting side.
Thereafter, the receiving side informs the transmitting side of the moved position of the receiving window (S14). The transmitting side having received the moved position terminates the MRW procedure and moves the transmitting window to 33˜44 (S15). The transmitting side then starts transmission from the 33rd PDU of the start point of the transmitting window (S16).
As explained in the above description, when discontinuous SDU discard takes place, the receiving window is moved by using one of the two methods, methods A or B in the related art. However, the related art methods A and B have the following problems or disadvantages.
First, in method A, the MRW procedures are sequentially executed several times to inform the receiving side of the discontinuous SDU discard, whereby considerable time delay takes place in processing subsequent SDUs. Namely, the PDU after the 37th PDU is transmittable after the second MRW procedure has been performed in the examples of FIG. 9 and FIG. 10, whereby the SDUs involved in the second MRW procedure should be stored in the RLC buffer for a considerable time. Typically, it takes at least 150 ms to finish one MRW procedure. If the receiving window is moved according to method A, the MRW procedure undesirably interrupts high-speed data communication. When using the SDU discard method based on the timer scheme, the SDUs fail to be transmitted and continue to be discarded in the worst-case scenario.
Moreover, in using method B, when the SDUs are discontinuously discarded, the receiving side discards the SDUs that were successfully transmitted as well, which undesirably reduces transmission efficiency. Namely, in the example of FIG. 9, only the 37th SDU is unnecessarily discarded, and thus the transmission efficiency is not greatly reduced. However, in other extreme examples, if the SDUs corresponding to the start and end points of the transmitting window are discarded, all SDUs in the transmitting window are discarded, which significantly reduces transmission efficiency.